﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using DAO;

namespace GUI
{
    public partial class FrmCauHinhKetNoi : Form
    {
        public FrmCauHinhKetNoi()
        {
            InitializeComponent();
        }

        private void FrmCauHinhKetNoi_FormClosed(object sender, FormClosedEventArgs e)
        {
            Program.frm_manhinhchinh.sub_mn_chkn.Checked = false;
        }

        private void FrmCauHinhKetNoi_Load(object sender, EventArgs e)
        {
            txtTenServer.Text=ConfigurationManager.AppSettings["Server"].ToString();
            txtTenCSDL.Text = ConfigurationManager.AppSettings["Database"].ToString();
            txtTenDNServer.Text = ConfigurationManager.AppSettings["Username"].ToString();
            txtMatKhau.Text = ConfigurationManager.AppSettings["Password"].ToString();
        }

        private void btnTestKetNoi_Click(object sender, EventArgs e)
        {
            bool testketnoi = DataProvider.ConnectToDatabase(txtTenServer.Text, txtTenCSDL.Text, txtTenDNServer.Text, txtMatKhau.Text);
            if (testketnoi == true)
            {
                MessageBox.Show("Đã kết nối thử thành công và kết nối đã được đóng lại !", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            DataProvider.sqlconn.Close();
        }

        private void btnKetNoiVaLuu_Click(object sender, EventArgs e)
        {
            bool connect=DataProvider.ConnectToDatabase(txtTenServer.Text, txtTenCSDL.Text, txtTenDNServer.Text, txtMatKhau.Text);
            if (connect == true)
            {
                Configuration _config;
                _config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                _config.AppSettings.Settings.Remove("Server");
                _config.AppSettings.Settings.Add("Server", txtTenServer.Text);
                _config.AppSettings.Settings.Remove("Database");
                _config.AppSettings.Settings.Add("Database", txtTenCSDL.Text);
                _config.AppSettings.Settings.Remove("Username");
                _config.AppSettings.Settings.Add("Username", txtTenDNServer.Text);
                _config.AppSettings.Settings.Remove("Password");
                _config.AppSettings.Settings.Add("Password", txtMatKhau.Text);
                _config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
                if (MessageBox.Show("Đã kết nối và lưu thông tin", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
                {
                    DataProvider.sqlconn.Close();               
                    this.Close();
                    Application.Restart();//Tự động restart lại ứng dụng sau khi lưu thông tin kết nối hợp lệ
                    return;
                }
            }
            else
                MessageBox.Show("Kiểm tra lại thông tin kết nối.\nHãy kết nối thử trước khi lưu thông tin.", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
